package com.yh.util;

import com.yh.service.UserService;
import com.yh.service.impl.UserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new
                ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = (UserService) applicationContext.getBean("userService");
        userService.save();

        //如上代码可以看做是
        UserService userService1=new UserServiceImpl();
        userService1.save();

        //使用spring之后 将需要创建的对象 交由spring容器管理
        //通过配置 spring容器在启动时 会自动创建对应的对象 并进行管理
        //当需要使用对应的对象时 通过getBean方法进行获取
        //这样所有需要new的对象 都可以直接配置在spring中 直接使用

        System.out.println("~~~~~~~~~~~~~~~~~~~~~~");
        //applicationContext.getBean("name")
        //根据配置的name进行获取
        UserService user1 = (UserService) applicationContext.getBean("userService");
        user1.save();
        //applicationContext.getBean("class")
        //根据配置的对象的类型获取  注意如果相同类型存在多个会报错
        UserService user2 =  applicationContext.getBean(UserService.class);
        user2.save();
    }
}
